使用半方差模型
https://pro.arcgis.com/zh-cn/pro-app/help/analysis/geostatistical-analyst/understanding-a-semivariogram-the-range-sill-and-nugget.htm
https://kevintshoemaker.github.io/NRES-746/SDM_v6.html
https://www.aspexit.com/en/implementing-variograms-in-r/
https://www.r-spatial.org/r/2016/02/14/gstat-variogram-fitting.html
library(sp)
data(meuse)
head(meuse)
coordinates(meuse) = ~x+y
variogram(log(zinc)~1, meuse)
variogram(log(zinc)~x+y, meuse)
aa <- variogram(log(zinc)~x+y, meuse, alpha=c(0,45,90,135))
bb <- variogram(log(zinc)~1, meuse, width=90, cutoff=1300)
plot(bb)
variogram(Chuckwalla ~1, k.chuck.trn, cutoff = 50000, xlab= "Distance (m)", ylab="Semivariance")
第一种就是空间稀疏吗,但即使是空间稀疏可能检测到残余空间自相关(RSC、ASC)。空间稀疏可能会丢失物种分布信息;
第二种方式:使用统计方法,这些方法允许我们考虑(甚至消除)空间自相关。我将要介绍的所有方法都假设空间平稳,这意味着空间自相关和其他协变量的影响在整个区域中都是恒定的。这种假设有时可能会出现问题。Dormann等。提供了以下示例:如果空间自相关的主要原因是分散的,则如果动物移到或多或少受到限制的不同栖息地,就会破坏平稳性。不幸的是,很少有方法可以解决非平稳性问题。
这种情况下的最佳解决方案是找到缺失的协变量并将其包含在模型中。不幸的是,这并非总是可能的,我们必须找到另一种解决方案。一种可能性是对该剩余空间自相关建模,并将此模型包括在我们的线性丰度模型中。
为了说明空间自相关,我们将使用软件包nlme中提供的名为GLS(广义最小二乘)的过程。实际上,GLS使用参数函数直接在方差-协方差矩阵中对空间协方差结构进行建模。但是首先我们将忽略空间自相关,并使用gls函数(而不是lm)重新拟合介绍中的模型。结果将是相同的,但是稍后使用AIC进行模型比较时,我们将需要此模型(即,我们无法使用lm将模型拟合的AIC与使用gls进行拟合的AIC进行比较)。
在方差图上,我们看到半方差明显随距离而增加。我们确认残差中存在空间自相关。
m2 <- gls(log1p(counts) ~ elevation + I(elevation^2), data = sampledata)
vario2 <- Variogram(m2, form = ~x + y, resType = "pearson")
plot(vario2, smooth = TRUE, ylim = c(0, 1.2))
m3 <- gls(log1p(counts) ~ elevation + I(elevation^2), correlation = corExp(form = ~x +
y, nugget = TRUE), data = sampledata)
m4 <- gls(log1p(counts) ~ elevation + I(elevation^2), correlation = corGaus(form = ~x +
y, nugget = TRUE), data = sampledata)
m5 <- gls(log1p(counts) ~ elevation + I(elevation^2), correlation = corSpher(form = ~x +
y, nugget = TRUE), data = sampledata)
m6 <- gls(log1p(counts) ~ elevation + I(elevation^2), correlation = corLin(form = ~x +
y, nugget = TRUE), data = sampledata)
m7 <- gls(log1p(counts) ~ elevation + I(elevation^2), correlation = corRatio(form = ~x +
y, nugget = TRUE), data = sampledata)
AIC(m2, m3, m4, m5, m6, m7)
绘制拟合的方差图以检查拟合是否正确。
vario3 <- Variogram(m3, form = ~x + y, resType = "pearson")
plot(vario3, smooth = FALSE, ylim = c(0, 1.2))
作为最后的检查,我们绘制归一化残差的样本变异函数图。这些残差是标准化残差预乘以估计的误差相关矩阵的平方根平方的倒数。因此,如果适当考虑了剩余空间自相关,我们就不会在新的变异函数图中看到任何趋势。
vario4 <- Variogram(m3, form = ~x + y, resType = "normalized", maxDist = 30)
plot(vario4, smooth = FALSE, ylim = c(0, 1.2))
resp <- expm1(predict(m3, newdata = data.frame(elevation = values(elev), x = coordinates(elev)[,
1], y = coordinates(elev)[2])))
resp <- rasterFromXYZ(cbind(coordinates(elev), resp))
plot(resp, main = "Predicted abundances")
通用克里金法在数学上等效于以下两步过程:首先使用协变量将线性模型拟合到您的数据,然后对残差执行普通克里金法,然后将克里金残差添加到线性模型的预测中。您将获得的新预测与通用克里金过程提供的预测相同。这种计算通用克里金法预测的方法通常称为回归克里金法。我们立即看到了这种替代参数化的主要优点之一:可以使用例如泊松分布将GLM(广义线性模型)拟合到我们的计数数据中;然后,我们可以使用普通克里金插值GLM残差并将其添加到我们的预测中。当然,我们应该首先在链接规模上将kriged残差添加到预测中,然后将结果反向转换。不幸的是,使用这种方法获得相应的标准误差要复杂得多。
install.packages("lctools")
library(lctools)
data(GR.Municipalities)
Coords<-cbind(GR.Municipalities@data$X, GR.Municipalities@data$Y)
bws <- c(3, 4, 6, 9, 12, 18, 24)
moransI.v(Coords, bws, GR.Municipalities@data$Income01)